﻿#pragma once
#include <string>
#include <iostream>

namespace $RootNamespace$
{

	// $Subject$ 
	class $Subject$
	{
	public:
		virtual void $Request$() = 0;
	};

	// $Proxy$ class
	class $Proxy$ : public $Subject$
	{
	private:
		$Subject$ *m_pRealSubject;

	public:
		virtual void $Request$();
		$Proxy$();
	};
	// $RealSubject$ class
	class $RealSubject$ : public $Subject$
	{
	public:
		static void Test();
		virtual void $Request$();
	};
}
